<template>
  <!-- 全局调试横幅 -->
  <view v-if="showBanner" class="global-debug-banner">
    <view class="banner-content">
      <text class="banner-text">{{ bannerText }}</text>
      <button class="close-btn" @tap="closeBanner">×</button>
    </view>
  </view>
  
  <!-- 全局测试按钮 -->
  <button class="global-test-btn" @tap="testBanner">
    全局测试
  </button>
</template>

<script setup>
import { ref, onMounted } from 'vue'

const showBanner = ref(false)
const bannerText = ref('')

onMounted(() => {
  console.log('🎉 GlobalDebugBanner 组件已挂载')
  console.log('🎉 当前页面路径:', window.location?.href || 'unknown')
  console.log('🎉 组件挂载状态:', showBanner.value)
  
  // 监听赞助事件
  uni.$on('sponsor-success', handleSponsorSuccess)
  uni.$on('test-banner', handleTestBanner)
  console.log('🎉 已注册uni.$on监听器')
  
  // 暴露到全局
  if (typeof window !== 'undefined') {
    window.__GLOBAL_DEBUG_BANNER__ = {
      showBanner: (text) => {
        bannerText.value = text
        showBanner.value = true
        console.log('🎉 全局横幅显示:', text)
        console.log('🎉 当前showBanner状态:', showBanner.value)
      },
      hideBanner: () => {
        showBanner.value = false
        console.log('🎉 全局横幅隐藏')
      }
    }
    console.log('🎉 已暴露到window.__GLOBAL_DEBUG_BANNER__')
  } else {
    console.log('🎉 window对象不存在，无法暴露全局方法')
  }
})

function handleSponsorSuccess(message) {
  console.log('🎉 GlobalDebugBanner 收到赞助消息:', message)
  
  const text = `${message.sponsorName} 赞助了 ¥${message.amount} (${message.sponsorType})`
  bannerText.value = text
  showBanner.value = true
  
  // 3秒后自动隐藏
  setTimeout(() => {
    showBanner.value = false
  }, 3000)
}

function handleTestBanner(data) {
  console.log('🎉 GlobalDebugBanner 收到测试横幅消息:', data)
  
  bannerText.value = data.text
  showBanner.value = true
  console.log('🎉 测试横幅显示，当前状态:', showBanner.value)
  
  // 3秒后自动隐藏
  setTimeout(() => {
    showBanner.value = false
  }, 3000)
}

function testBanner() {
  console.log('🎉 全局测试按钮被点击')
  bannerText.value = '这是一个全局测试横幅！'
  showBanner.value = true
  
  setTimeout(() => {
    showBanner.value = false
  }, 3000)
}

function closeBanner() {
  showBanner.value = false
}
</script>

<style scoped>
.global-debug-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  background: linear-gradient(135deg, #ff6b6b, #ff8e8e);
  color: white;
  padding: 15px 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  animation: slideDown 0.3s ease-out;
}

.banner-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 100%;
}

.banner-text {
  font-size: 16px;
  font-weight: bold;
  flex: 1;
  margin-right: 10px;
}

.close-btn {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: white;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
}

.global-test-btn {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 100000;
  background: #4a90e2;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 10px 15px;
  font-size: 14px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

@keyframes slideDown {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
</style>
